#include <gtkmm-3.0/gtkmm/widget.h>
#include "VentanaJuego.h"
#include "ThreadMotorJuego.h"

#define	 FPS_DEFAULT           30
#define	 RUTA_CARPETA_RECURSOS "../Recursos/"

#define	 PATH_FONDO			   RUTA_CARPETA_RECURSOS "fondo.png"
#define	 PATH_PAJARITO_ROJO    RUTA_CARPETA_RECURSOS "pajaro_rojo_icono.png"
#define	 PATH_PAJARITO_AZUL    RUTA_CARPETA_RECURSOS "pajaro_azul_icono.png"
#define	 PATH_PAJARITO_VERDE   RUTA_CARPETA_RECURSOS "pajaro_verde_icono.png"
#define	 PATH_CERDITO          RUTA_CARPETA_RECURSOS "cerdito_icono.png"
#define  PATH_HUEVO_RELOJ      RUTA_CARPETA_RECURSOS "huevo_reloj.png"
#define  PATH_HUEVO_POCHE      RUTA_CARPETA_RECURSOS "huevo_poche.png"
#define  PATH_HUEVO_CODORNIZ   RUTA_CARPETA_RECURSOS "huevo_codorniz.png"
#define  PATH_HUEVO_BLANCO     RUTA_CARPETA_RECURSOS "huevo_blanco.png"
#define  PATH_CATAPULTA        RUTA_CARPETA_RECURSOS "catapulta_icono.png"
#define  PATH_CAJA_MADERA      RUTA_CARPETA_RECURSOS "caja_madera_icono.png"
#define  PATH_CAJA_METAL	   RUTA_CARPETA_RECURSOS "caja_metal_icono.png"
#define  PATH_CAJA_VIDRIO	   RUTA_CARPETA_RECURSOS "caja_vidrio_icono.png"
#define  PATH_MANZANA		   RUTA_CARPETA_RECURSOS "manzana_icono.png"
#define  PATH_BANANA		   RUTA_CARPETA_RECURSOS "banana_icono.png"
#define  PATH_CEREZA		   RUTA_CARPETA_RECURSOS "cereza_icono.png"
#define  PATH_MONTICULO_HUEVOS RUTA_CARPETA_RECURSOS "huevos_icono.png"

VentanaJuego::VentanaJuego(Cliente* cliente, unsigned int ancho,
		unsigned int alto) {
	_cliente = cliente;
	_lienzo = new LienzoJuego(cliente, FPS_DEFAULT);

	_lienzo->SetImagenFondo(PATH_FONDO);
	_lienzo->SetImagenCerdito(PATH_CERDITO);
	_lienzo->SetImagenPajaroRojo(PATH_PAJARITO_ROJO);
	_lienzo->SetImagenPajaroAzul(PATH_PAJARITO_AZUL);
	_lienzo->SetImagenPajaroVerde(PATH_PAJARITO_VERDE);
	_lienzo->SetImagenHuevoBlanco(PATH_HUEVO_BLANCO);
	_lienzo->SetImagenHuevoPoche(PATH_HUEVO_POCHE);
	_lienzo->SetImagenHuevoReloj(PATH_HUEVO_RELOJ);
	_lienzo->SetImagenHuevoCodorniz(PATH_HUEVO_CODORNIZ);
	_lienzo->SetImagenCajaMadera(PATH_CAJA_MADERA);
	_lienzo->SetImagenCajaVidrio(PATH_CAJA_VIDRIO);
	_lienzo->SetImagenCajaMetal(PATH_CAJA_METAL);
	_lienzo->SetImagenCatapulta(PATH_CATAPULTA);
	_lienzo->SetImagenMonticuloHuevos(PATH_MONTICULO_HUEVOS);
	_lienzo->SetImagenManzana(PATH_MANZANA);
	_lienzo->SetImagenBanana(PATH_BANANA);
	_lienzo->SetImagenCereza(PATH_CEREZA);

	set_size_request(ancho, alto);
	set_resizable(false);
	set_title("Cerditos Furiosos");
	add(*_lienzo);
}

void VentanaJuego::Iniciar() {
	_threadMotorJuego = new ThreadMotorJuego(_cliente, this);
	_threadMotorJuego->Start();
	show_all_children(true);
	show_all();
}

void VentanaJuego::SetPartida(Partida* partida) {
	_lienzo->SetPartida(partida);
}

void VentanaJuego::on_hide() {
	if (_threadMotorJuego) {
		_threadMotorJuego->Finish();
		delete _threadMotorJuego;
	}

	hide();
}

VentanaJuego::~VentanaJuego() {}

